#ifndef __ZHU_OS_KERNEL64_IO_H__
#define __ZHU_OS_KERNEL64_IO_H__

// 重构了一下，把调用汇编函数修改成了内联汇编，这样减少了函数调用的开销
#define in_byte(port) ({\
    char v; \
    asm volatile("inb %%dx, %%al" : "=a"(v) : "d"(port));\
    v;})

#define out_byte(port, v) \
    asm volatile("outb %%al, %%dx" : : "a"(v), "d"(port));\

#define in_word(port) ({\
    short v; \
    asm volatile("inw %1, %0" : "=a"(v) : "d"(port));\
    v;})

#define out_word(port, v) \
    asm volatile("outw %%ax, %%dx" : : "a"(v), "d"(port));

// char in_byte(int port);
// short in_word(int port);

// void out_byte(int port, int v);
// void out_word(int port, int v);
#endif